package 每日一题;

public class No867转置矩阵 {

    /**
     * 给你一个二维整数数组 matrix， 返回 matrix 的 转置矩阵 。
     * 矩阵的 转置 是指将矩阵的主对角线翻转，交换矩阵的行索引与列索引。
     *
     * 示例 1：
     * 输入：matrix = [[1,2,3],[4,5,6],[7,8,9]]
     * 输出：[[1,4,7],[2,5,8],[3,6,9]]
     * 示例 2：
     * 输入：matrix = [[1,2,3],[4,5,6]]
     * 输出：[[1,4],[2,5],[3,6]]
     *  
     * 提示：
     * m == matrix.length
     * n == matrix[i].length
     * 1 <= m, n <= 1000
     * 1 <= m * n <= 105
     * -109 <= matrix[i][j] <= 109
     */

    //行列可能不等,所以需要 新建翻转行列数组
    public int[][] transpose(int[][] matrix) {

        int allLength=matrix.length;
        int itemLength=matrix[0].length;

        int[][] result=new int[itemLength][allLength];

        for (int i = 0; i < allLength; i++) {
            for (int j = 0; j < itemLength; j++) {
                result[i][j]=matrix[j][i];
                result[j][i]=matrix[i][j];
            }
        }

        return result;
    }

    public static void main(String[] args) {
        No867转置矩阵 n=new No867转置矩阵();
        int[][] arr={{},{},{}};
    }

}
